#pragma once
#include "Header.h"

#define USTRING_EXTENSION_FOR_BACKUP   L"cbak"

#define POOL_TAG_FILE_PATH  'tPlF'
#define POOL_TAG_BUFFER     'gTfB'

#define RW_BUFFER_SIZE      4096

NTSTATUS CreateDirectory(IN PUNICODE_STRING lpusFilePath, OUT PHANDLE lphFile, OUT PIO_STATUS_BLOCK lpIoStatusBlock);

BOOLEAN IsTargetFileByExtension(IN PFLT_CALLBACK_DATA Data, IN PWCHAR lpwszExtension);

FLT_PREOP_CALLBACK_STATUS BackUpFile(
    IN PFLT_CALLBACK_DATA Data,
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN BOOLEAN bDeferred
);
